package main

import (
	"account-service/tools"
	"fmt"
	"log"
)

/*
 +----------------------------------------------------------------------
 + Title        : fanoutConsumer
 + Author       : huwl
 + Version      : 2.0.0
 + Initial-Time : 2020-11-23
 + Last-time    : 这个文件最后修改的时间 + 修改人的名称
 + Desc         : 广播消费者
 +----------------------------------------------------------------------
*/

// 运行程序命令: go run .\consoles\rabbitMQConsumer\fanoutConsumer\main.go

/**
 * 广播消费者
 *
 * @param string queueName ----------------------------------必传,队列名称
 * @param string consumerName -------------------------------必传,消费者名称
 * @author huwl
 */
func FanoutConsumer(queueName, consumerName string) {
	fmt.Println("------------- fanout " + consumerName + " start -------------")

	// 创建RabbitMQ
	rm, err := tools.NewRabbitMQ()
	if err != nil {
		log.Fatalf("Failed to create RabbitMQ: %v", err)
	}

	// 创建队列，注意如果生产者端已经创建则无需再创建
	// 消费消息
	rm.ConsumeMessage(tools.ConsumerMessageParam{
		Queue:    queueName,
		Consumer: consumerName,
		AutoAck:  true,
	})
}

func main() {
	go FanoutConsumer("logs-fanout.queue-01", "consumer1")
	FanoutConsumer("logs-fanout.queue-02", "consumer2")
}
